package edu.pku.sei.sct.primitives;

import edu.pku.sei.ocl.evaluation.Context;
import edu.pku.sei.ocl.visitor.AbstractOCLVisitor;
import edu.pku.sei.sct.evaluation.SCTEnvironment;

public abstract class AbstractPrimitive {
	abstract public Object execute(Object... argv);
	public Object execute(AbstractOCLVisitor visitor, Context currentContext, Object... argv) {
		return execute(argv);
	}
	
	public AbstractPrimitive(SCTEnvironment e) {
		sctEnvironment = e;
	}
	
	public SCTEnvironment getSctEnvironment() {
		return sctEnvironment;
	}

	public void setSctEnvironment(SCTEnvironment sctEnvironment) {
		this.sctEnvironment = sctEnvironment;
	}

	protected SCTEnvironment sctEnvironment;

	abstract public String getID();
	
	
}
